package demo14;

import java.util.ArrayList;

// 群主类
public class Manager extends User {
    public Manager() {
    }

    public Manager(String name) {
        super(name);
    }

    public Manager(String name, double money) {
        super(name, money); // 构造沿用父类构造
    }

    public ArrayList<Double> sendMoney(double money, int count) {
        double leftMoney = getMoney(); // getMoney()=super.getMoney()
        if (leftMoney < money) {
            System.out.println("群主余额不足！");
            return null; // 余额不足，返回空值
        }
        ArrayList<Double> arrayList = new ArrayList<>();
        double qunZhuMoney = (int)((leftMoney - money) * 100) / 100.0; // 群主金额扣除：减去红包金额并换算到“每分”，再换算到“每元”，实现输出不会有误差值
        setMoney(qunZhuMoney); // 群主扣除红包钱 setMoney()=super.setMoney()
        int money1 = (int)(100 * money / count); // 等分的钱，乘以100计算到“每分”
        int money2 = (int)(100 * money % count); // 有余的钱，如果不存在余数则为0，同样乘以100计算到“每分”
        for (int i = 0; i < count; i++) {
            if (i == count - 1) { // 如果金额无法整除，存在余数，会多一份增加了余数的钱存在数组中
                arrayList.add((money1 + money2) / 100.0); // 原本精确到了“每分”，在此处换算为“每元”
            } else {
                arrayList.add(money1 / 100.0); // 原本精确到了“每分”，在此处换算为“每元”
            }
        }

        return arrayList;
    }
}
